15 research outputs found

    Improving the Perfomance of a Pointer-Based, Speculative Parallelization Scheme

    Get PDF
    La paralelizaci贸n especulativa es una t茅cnica que intenta extraer paralelismo de los bucles no paralelizables en tiempo de compilaci贸n. La idea subyacente es ejecutar el c贸digo de forma optimista mientras un subsistema comprueba que no se viole la sem谩ntica secuencial. Han sido muchos los trabajos realizados en este campo, sin embargo, no conocemos ninguno que fuese capaz de paralelizar aplicaciones que utilizasen aritm茅tica de punteros. En un trabajo previo del autor de esta memoria, se desarroll贸 una librer铆a software capaz de soportar este tipo de aplicaciones. No obstante, el software desarrollado sufr铆a de una limitaci贸n muy importante: el tiempo de ejecuci贸n de las versiones paralelas era mayor que el de las versiones secuenciales. A lo largo de este Trabajo de Fin de M谩ster, se aborda esta limitaci贸n, encontrando y corrigiendo las razones de esta falta de eficiencia, y situando el trabajo realizado en perspectiva, dentro de las contribuciones mundiales en este 谩mbito. Los resultados experimentales obtenidos con aplicaciones reales nos permiten afirmar que estas limitaciones han sido solventadas, ya que obtenemos speedups de hasta de un 1.61 . As铆, con la nueva versi贸n de la librer铆a se han llegado a obtener mejoras de hasta el 421.4% respecto al tiempo de ejecuci贸n generado por la versi贸n original de la librer铆a especulativa.Inform谩ticaM谩ster en Investigaci贸n en Tecnolog铆as de la Informaci贸n y las Comunicacione

    Design and evaluation of a Thread-Level Speculation runtime library

    Get PDF
    En los pr贸ximos a帽os es m谩s que probable que m谩quinas con cientos o incluso miles de procesadores sean algo habitual. Para aprovechar estas m谩quinas, y debido a la dificultad de programar de forma paralela, ser铆a deseable disponer de sistemas de compilaci贸n o ejecuci贸n que extraigan todo el paralelismo posible de las aplicaciones existentes. As铆 en los 煤ltimos tiempos se han propuesto multitud de t茅cnicas paralelas. Sin embargo, la mayor铆a de ellas se centran en c贸digos simples, es decir, sin dependencias entre sus instrucciones. La paralelizaci贸n especulativa surge como una soluci贸n para estos c贸digos complejos, posibilitando la ejecuci贸n de cualquier tipo de c贸digos, con o sin dependencias. Esta t茅cnica asume de forma optimista que la ejecuci贸n paralela de cualquier tipo de c贸digo no de lugar a errores y, por lo tanto, necesitan de un mecanismo que detecte cualquier tipo de colisi贸n. Para ello, constan de un monitor responsable que comprueba constantemente que la ejecuci贸n no sea err贸nea, asegurando que los resultados obtenidos de forma paralela sean similares a los de cualquier ejecuci贸n secuencial. En caso de que la ejecuci贸n fuese err贸nea los threads se detendr铆an y reiniciar铆an su ejecuci贸n para asegurar que la ejecuci贸n sigue la sem谩ntica secuencial. Nuestra contribuci贸n en este campo incluye (1) una nueva librer铆a de ejecuci贸n especulativa f谩cil de utilizar; (2) nuevas propuestas que permiten reducir de forma significativa el n煤mero de accesos requeridos en las peraciones especulativas, as铆 como consejos para reducir la memoria a utilizar; (3) propuestas para mejorar los m茅todos de scheduling centradas en la gesti贸n din谩mica de los bloques de iteraciones utilizados en las ejecuciones especulativas; (4) una soluci贸n h铆brida que utiliza memoria transaccional para implementar las secciones cr铆ticas de una librer铆a de paralelizaci贸n especulativa; y (5) un an谩lisis de las t茅cnicas especulativas en uno de los dispositivos m谩s vanguardistas del momento, los coprocesadores Intel Xeon Phi. Como hemos podido comprobar, la paralelizaci贸n especulativa es un campo de investigaci贸n activo. Nuestros resultados demuestran que esta t茅cnica permite obtener mejoras de rendimiento en un gran n煤mero de aplicaciones. As铆, esperamos que este trabajo contribuya a facilitar el uso de soluciones especulativas en compiladores comerciales y/o modelos de programaci贸n paralela de memoria compartida.Departamento de Inform谩tica (Arquitectura y Tecnolog铆a de Computadores, Ciencias de la Computaci贸n e Inteligencia Artificial, Lenguajes y Sistemas Inform谩ticos

    New data structures to handle speculative parallelization at runtime

    Get PDF
    Producci贸n Cient铆ficaSoftware-based, thread-level speculation (TLS) is a software technique that optimistically executes in parallel loops whose fully-parallel semantics can not be guaranteed at compile time. Modern TLS libraries allow to handle arbitrary data structures speculatively. This desired feature comes at the high cost of local store and/or remote recovery times: The easier the local store, the harder the remote recovery. Unfortunately, both times are on the critical path of any TLS system. In this paper we propose a solution that performs local store in constant time, while recover values in a time that is in the order of T, being T the number of threads. As we will see, this solution, together with some additional improvements, makes the difference between slowdowns and noticeable speedups in the speculative parallelization of non-synthetic, pointer-based applications on a real system. Our experimental results show a gain of 3.58脳 to 28脳 with respect to the baseline system, and a relative efficiency of up to, on average, 65 % with respect to a TLS implementation specifically tailored to the benchmarks used.Castilla-Leon Regional Government (VA172A12-2); Ministerio de Industria, Spain (CENIT OCEANLIDER); MICINN (Spain) and the European Union FEDER (MOGECOPP project TIN2011-25639, CAPAP-H3 net- work TIN2010-12011-E, CAPAP-H4 network TIN2011-15734-E)

    A Survey on Thread-Level Speculation Techniques

    Get PDF
    Producci贸n Cient铆ficaThread-Level Speculation (TLS) is a promising technique that allows the parallel execution of sequential code without relying on a prior, compile-time-dependence analysis. In this work, we introduce the technique, present a taxonomy of TLS solutions, and summarize and put into perspective the most relevant advances in this field.MICINN (Spain) and ERDF program of the European Union: HomProg-HetSys project (TIN2014-58876-P), CAPAP-H5 network (TIN2014-53522-REDT), and COST Program Action IC1305: Network for Sustainable Ultrascale Computing (NESUS)

    An OpenMP Extension that Supports Thread-Level Speculation

    Get PDF
    Producci贸n Cient铆ficaOpenMP directives are the de-facto standard for shared-memory parallel programming. However, OpenMP does not guarantee the correctness of the parallel execution of a given loop if runtime data dependences arise. Consequently, many highly-parallel regions cannot be safely parallelized with OpenMP due to the possibility of a dependence violation. In this paper, we propose to augment OpenMP capabilities, by adding thread-level speculation (TLS) support. Our contribution is threefold. First, we have defined a new speculative clause for variables inside parallel loops. This clause ensures that all accesses to these variables will be carried out according to sequential semantics. Second, we have created a new, software-based TLS runtime library to ensure correctness in the parallel execution of OpenMP loops that include speculative variables. Third, we have developed a new GCC plugin, which seamlessly translates our OpenMP speculative clause into calls to our TLS runtime engine. The result is the ATLaS C Compiler framework, which takes advantage of TLS techniques to expand OpenMP functionalities, and guarantees the sequential semantics of any parallelized loop.Castilla-Leon Regional Government (VA172A12-2, PIRTU); Ministerio de Industria, Spain (CENIT OCEANLIDER); MICINN (Spain) and the European Union FEDER (MOGECOPP project TIN2011- 25639, CAPAP-H3 network TIN2010-12011-E, CAPAPH4 network TIN2011-15734-E)

    Desarrollo de un motor de paralelizaci贸n especulativa con soporte para aritm茅tica de punteros

    No full text
    La paralelizaci贸n especulativa es una t茅cnica que permite extraer paralelismo de bucles no analizables en tiempo de compilaci贸n. Esta t茅cnica se basa en ejecutar de forma optimista el bucle en paralelo, mientras un sistema monitoriza la ejecuci贸n y corrige eventuales violaciones de dependencia. El grupo de investigaci贸n Trasgo utilizaba el motor SpecEngine, cuyo uso conlleva ciertas limitaciones, como por ejemplo la necesidad de especular sobre un solo tipo de datos y no utilizar aritm茅tica de punteros. Partiendo de la arquitectura original del motor especulativo, hemos desarrollado una nueva arquitectura que soluciona las principales limitaciones existentes en la versi贸n original. El nuevo motor especulativo permite la especulaci贸n sobre datos de diferente tipo en la misma aplicaci贸n y aritm茅tica de punteros.Grado en Ingenier铆a Inform谩tic

    Intl. Symp. on High Level Parallel Programming and Applications (HLPP)

    No full text
    Producci贸n Cient铆ficaIntel Xeon Phi accelerators are one of the newest devices used in the field of parallel computing. However, there are comparatively few studies concerning their performance when using most of the existing parallelization techniques. One of them is thread-level speculation, a technique that optimistically tries to extract parallelism of loops without the need of a compile-time analysis that guarantees that the loop can be executed in parallel. In this article we evaluate the performance delivered by an Intel Xeon Phi coprocessor when using a software, state-of-the-art thread-level speculative parallelization library in the execution of well-known benchmarks. Our results show that, although the Xeon Phi delivers a relatively good speedup in comparison with a shared-memory architecture in terms of scalability, the low computing power of its computational units when specific vectorization and SIMD instructions are not exploited, indicates that further development of new specific techniques for this platform is needed to make it competitive for the application of speculative parallelization comparing with high-end processors or conventional shared-memory systems.Castilla-Leon Regional Government (VA172A12-2); MICINN (Spain) and the European Union FEDER (MOGECOPP project TIN2011-25639, HomProg-HetSys project TIN2014-58876-P, CAPAP-H5 network TIN2014-53522-REDT)

    Euro-Par

    No full text
    Producci贸n Cient铆ficaScheduling is one of the factors that most directly affect performance in Thread-Level Speculation (TLS). Since loops may present dependences that cannot be predicted before runtime, Finding a good chunk size is not a simple task. The most used mechanism, Fixed-Size Chunking (FSC), requires many \dry-runs" to set the optimal chunk size. If the loop does not present dependence violations at runtime, scheduling only needs to deal with load balancing issues. For loops where the general pattern of dependences is known, as is the case with Randomized Incremental Algorithms, specialized mechanisms have been designed to maximize performance. To make TLS available to a wider community, a general scheduling algorithm that does not require a-priori knowledge of the expected pattern of dependences nor previous dry-runs to adjust any parameter is needed. In this paper, we present an algorithm that estimates at runtime the best size of the next chunk to be scheduled. This algorithm takes advantage of our previous knowledge in the design and test of other scheduling mechanisms, and it has a solid mathematical basis. The result is a method that, using information of the execution of the previous chunks, decides the size of the next chunk to be scheduled. Our experimental results show that the use of the proposed scheduling function compares or even increases the performance that can be obtained by FSC, greatly reducing the need of a a costly and careful search for the best fixed chunk size.Castilla-Leon (VA172A12- 2), MICINN (Spain) and the European Union FEDER (MOGECOPP project TIN2011-25639, HomProg-HetSys project, TIN2014-58876-P, CAPAP-H5 net- work TIN2014-53522-REDT), Madrid Regional Government through the TIGRE5- CM program (S2013/ICE-2919), and by the MICINN Project MTM2011-22792. Belen Palop is partially supported by MINECO MTM2012-30951

    Intervenci贸n psicopedag贸gica en los trastornos del desarrollo

    No full text
    En este cd se describe la intervenci贸n psicopedag贸gica en los diferentes trastornos del desarrollo; en el retraso mental, en la discapacidad auditiva, en la discapacidad visual, la discapacidad motriz y en el autismo.Catalu帽aES

    Intervenci贸 psicopedag貌gica en els transtorns del desenvolupament

    No full text
    En este cd se describe la intervenci贸n psicopedag贸gica en los diferentes trastornos del desarrollo; en el retraso mental, en la discapacidad auditiva, en la discapacidad visual, la discapacidad motriz y en el autismo.Catalu帽aES
    corecore